# coding=utf8
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"

tinydict = {'name': 'runoob', 'code': 6734, 'dept': 'sales'}

print dict['one']  # 输出键为'one' 的值
print dict[2]  # 输出键为 2 的值
print tinydict  # 输出完整的字典
print tinydict.keys()  # 输出所有键
print tinydict.values()  # 输出所有值
# print 'dict[3]:', dict[3] #异常 KeyError: 3

# 修改字典
print '-' * 4
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8  # 更新
dict['School'] = "RUNOOB"  # 添加
print 'dict["Age"]:', dict['Age']
print 'dict["School"]:', dict['School']

# 删除字典元素
print '-' * 4
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']  # 删除键是'Name'的条目
print dict
dict.clear()      # 清空字典所有条目
print dict
del dict          # 删除字典
print dict        # NameError: name 'dict' is not defined

# 字典键的特性
# 1）不允许同一个键出现两次。创建时如果同一个键被赋值两次，后一个值会被记住，如下实例：
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']
# 2）键必须不可变，所以可以用数字，字符串或元组充当，所以用列表就不行，如下实例：
# dict = {['Name']: 'Zara', 'Age': 7} #TypeError: unhashable type: 'list

# 内置函数type 返回输入的变量类型，如果变量是字典就返回字典类型。
print type(dict)
